package com.prop.utils;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class FileNames {
    public static void main(String[] args) {
        // 指定文件夹路径
        String folderPath = "poi-test/files";

        List<String> filteredFileNames = getFilteredFileNames(folderPath);

        // 打印筛选后的文件名列表
        filteredFileNames.forEach(System.out::println);
    }

    // 方法用于获取筛选后的文件名列表
    public static List<String> getFilteredFileNames(String folderPath) {
        // 创建 File 对象来表示文件夹
        File folder = new File(folderPath);

        List<String> fileNames = new ArrayList<>();

        // 检查文件夹是否存在
        if (folder.exists() && folder.isDirectory()) {
            // 获取文件夹中的所有文件
            File[] files = folder.listFiles();

            // 使用 Stream 过滤特定后缀名的文件名并收集到列表中
            if (files != null) {
                fileNames = Arrays.stream(files)
                        .filter(file -> file.isFile() &&
                                (file.getName().toLowerCase().endsWith(".doc") ||
                                        file.getName().toLowerCase().endsWith(".ppt") ||
                                        file.getName().toLowerCase().endsWith(".docx") ||
                                        file.getName().toLowerCase().endsWith(".pptx") ||
                                        file.getName().toLowerCase().endsWith(".xls") ||
                                        file.getName().toLowerCase().endsWith(".et") ||
                                        file.getName().toLowerCase().endsWith(".dps") ||
                                        file.getName().toLowerCase().endsWith(".wps") ||
                                        file.getName().toLowerCase().endsWith(".xlsx")))
                        .map(File::getName)
                        .collect(Collectors.toList());
            }
        }

        return fileNames; // 返回文件名列表
    }
}
